home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / machine / jackal.c < prev    next >
C/C++ Source or Header  |  2000-04-04  |  2KB  |  102 lines

  1. /***************************************************************************
  2.  
  3.   machine.c
  4.  
  5.   Written by Kenneth Lin (kenneth_lin@ai.vancouver.bc.ca)
  6.  
  7.   Functions to emulate general aspects of the machine (RAM, ROM, interrupts,
  8.   I/O ports)
  9.  
  10. ***************************************************************************/
  11.  
  12. #include "driver.h"
  13. #include "vidhrdw/generic.h"
  14. #include "cpu/m6809/m6809.h"
  15.  
  16. extern unsigned char jackal_interrupt_enable;
  17.  
  18. unsigned char *jackal_rambank = 0;
  19. unsigned char *jackal_spritebank = 0;
  20.  
  21.  
  22. void jackal_init_machine(void)
  23. {
  24.     cpu_setbank(1,&((memory_region(REGION_CPU1))[0x4000]));
  25.      jackal_rambank = &((memory_region(REGION_CPU1))[0]);
  26.     jackal_spritebank = &((memory_region(REGION_CPU1))[0]);
  27. }
  28.  
  29.  
  30.  
  31. READ_HANDLER( jackal_zram_r )
  32. {
  33.     return jackal_rambank[0x0020+offset];
  34. }
  35.  
  36.  
  37. READ_HANDLER( jackal_commonram_r )
  38. {
  39.     return jackal_rambank[0x0060+offset];
  40. }
  41.  
  42.  
  43. READ_HANDLER( jackal_commonram1_r )
  44. {
  45.     return (memory_region(REGION_CPU1))[0x0060+offset];
  46. }
  47.  
  48.  
  49. READ_HANDLER( jackal_voram_r )
  50. {
  51.     return jackal_rambank[0x2000+offset];
  52. }
  53.  
  54.  
  55. READ_HANDLER( jackal_spriteram_r )
  56. {
  57.     return jackal_spritebank[0x3000+offset];
  58. }
  59.  
  60.  
  61. WRITE_HANDLER( jackal_rambank_w )
  62. {
  63.     jackal_rambank = &((memory_region(REGION_CPU1))[((data & 0x10) << 12)]);
  64.     jackal_spritebank = &((memory_region(REGION_CPU1))[((data & 0x08) << 13)]);
  65.     cpu_setbank(1,&((memory_region(REGION_CPU1))[((data & 0x20) << 11) + 0x4000]));
  66. }
  67.  
  68.  
  69. WRITE_HANDLER( jackal_zram_w )
  70. {
  71.     jackal_rambank[0x0020+offset] = data;
  72. }
  73.  
  74.  
  75. WRITE_HANDLER( jackal_commonram_w )
  76. {
  77.     jackal_rambank[0x0060+offset] = data;
  78. }
  79.  
  80.  
  81. WRITE_HANDLER( jackal_commonram1_w )
  82. {
  83.     (memory_region(REGION_CPU1))[0x0060+offset] = data;
  84.     (memory_region(REGION_CPU2))[0x6060+offset] = data;
  85. }
  86.  
  87.  
  88. WRITE_HANDLER( jackal_voram_w )
  89. {
  90.     if ((offset & 0xF800) == 0)
  91.     {
  92.         dirtybuffer[offset & 0x3FF] = 1;
  93.     }
  94.     jackal_rambank[0x2000+offset] = data;
  95. }
  96.  
  97.  
  98. WRITE_HANDLER( jackal_spriteram_w )
  99. {
  100.     jackal_spritebank[0x3000+offset] = data;
  101. }
  102.